// 转换函数返回的结果
function transformException(target, propertyName, descriptor) {
  const value = descriptor.value // 保存原方法
  descriptor.value =function(...args){ // 重写方法
    try { // 将原方法放在 try catch 块中执行
      const result = value(...args) // 调用原始方法 并获取返回值
      return `转换后 ${result}` // 转换原始的返回值
    } catch (e) {
      throw new Error('转换后的新异常')
    }
  }
}

class Example {
  @transformException
  riskMethod() {
    throw new Error('原始的异常')
  }
}

try {
  (new Example()).riskMethod()
} catch (e) {
  console.log(e.message)
}

export {}

